This invention relates generally to recording systems and, more particularly, to optimization of read/write channels in a recording system such as a disk drive system.
A read/write channel contains both write and read paths, in which a plurality of functional blocks reside. There are numerous parameters in each functional block. The settings of the parameters affect the performance of the channels such as error rates. For a given recording system, it is desirable to provide a read/write channel that delivers the best performance or lowest error rates (also called the best error rates) to its disk controller for a given recording system. The settings of the parameters corresponding to the best performance are called optimal settings. A recording system includes recording heads for writing and reading, recording media for storing information, and preamplifier and associated inter-connection for bridging electronic signals between read/write channel and recording heads. The optimal settings of channel parameters are typically dependent on the recording system, largely dependent on recording head, media, and preamplifier. Signals from different recording systems have different characteristics which require different optimal settings of channel parameters in order to achieve the optimal performance. For example, in magnetic disk drives, the optimal settings of channel parameters are different from head to head, and from zone to zone. A read/write channel can hardly be useful without optimization (also called tuning) of its key parameters. Optimizing the parameters of channel for a given recording system is important for achieving the best performance of the channel.
The parameters that need to be optimized are channel dependent, and they in general reside in the functional blocks such as pre-compensation, magneto-resistive head asymmetry correction (MR-ASYM), high-pass filter, low-pass-filter, DC-cancellation or compensation loops, finite impulse response equalizer (FIR), channel equalizer target (target), digital post-processor, and automatic gain control loop and timing recovery loop. The truly optimal settings of the parameters should come from the joint optimization of an expression based on all the parameters. In practice, it is difficult to derive such an expression that contains all the parameters of interest. Instead, parameters are optimized individually or jointly to some extent with some specific orders and iterations.
The typical parameters in each functional block are listed as follows: nonlinear transition shift (NLTS), partial erasure, and timing asymmetry in the pre-compensation block; head asymmetry and saturation correction in the magneto-resistive head asymmetry correction block (MR-ASYM) block; high-pass pole cutoff in the high-pass filter block; low-pass cutoff and boost in the low-pass-filter block; loop parameters for the DC-cancellation or compensation block; FIR equalizer taps in the FIR block; target coefficients in the channel target block; taps and thresholds in the digital post-processor block; loop parameters in the automatic gain control loop, and frequency and phase updating parameters in the timing recovery loop block.
The metrics that can be used to optimize channel parameters are channel dependent. In general the metric could be one of the following: error rate (bit error rate, symbol error rate, or sector error rate), mean-square error (MSE), mis-equalization error, non-linear distortion, and Viterbi margins.
Current read/write channels do not utilize any embedded channel optimization schemes. The optimization of channel parameters is done by the use of external software developed by channel users. The external software implements channel optimization algorithms to optimize channel parameters according to a certain metric. The typical metrics available from the channel are MSE and Viterbi margin. If the metric used in optimizing channel is not available from the channel, then external hardware is needed to communicate with the channel to produce the required metric. For example, if the symbol error rate is used as the metric and the channel does not have the means to produce symbol error rates, then an external hardware known as the error rate tester is needed in order to perform channel optimization. When the channel is used in a spinstand environment, there is usually an error rate tester on which external software runs to performance optimization. When the channel is used in a disk drive environment, external software communicates with the disk controller or system-on-chip (SOC) when channels and disk controller are integrated to perform channel optimization. In the case of a hard disk drive, the disk controller is a hard disk controller (HDC).
FIG. 1 shows the block diagrams of software-driven channel optimization interacting with other hardware components. The head/disk 10 sends a read signal through a preamplifier 12 to the read/write channel 14. The channel 14 interfaces with the disk controller or external error rate tester 16 for data writing and reading through a non-return-to-zero (NRZ) bus. The disk controller or external error rate tester 16 communicates via a hardware interface 18 with a computer 20, which utilizes external software 22 for channel optimization. As a result, the read gate is provided to the read/write channel 14 and the write gate is provided to the channel 14 and the preamplifier 12. The read/write channel 14 sends the write data to the preamplifier 12 as the write signal.
FIG. 2 shows the flowchart of a typical algorithm of the software-driven channel optimization. Starting with a list of parameters to optimize 30, if there is parameter on the list that has not been optimized (step 32), the next parameter is fetched (step 34). If there is more value to scan for that parameter (step 36), then via the interface (step 38) the value is changed (step 40). If a writing track is needed (step 42), then via the interface (step 44) a writing track is performed (step 46). Subsequently, sectors are read (step 48), and the results are compared to select the better value (step 50). The next value is scanned and the optimization process is repeated until no more values are left for that parameter. When there are no more parameters left on the list 30, the optimization is completed (step 52).
It is seen from the flowchart that scanning each value of each parameter requires hardware interface access. This is one of the main reasons for the speed limitation of software-driven channel optimization. In software-driven channel optimization, the channel has no knowledge about the optimization algorithm and has to rely on software to initiate the scan of each value of each parameter, thus requiring heavy interface access and limiting speed.
The best performance of the channel is achieved by setting the channel to the optimal settings. The software-driven channel optimization has difficulties in achieving the optimal settings. The level of success of the optimization is largely dependent on how well users understand channels and how users develop optimization algorithms and procedures. Generally, the optimization software is not directly transferable, but is different from application to application. For example, the software that works for external error rate testers is different from the software that works for disk controllers because of the different hardware interface. The software for the disk drive manufacturing application may be different from that for the disk drive integration/development application also due to the different hardware interface. The software-driven channel optimization tends to produce inconsistent performance of channels in different applications. Moreover, the software-driven channel optimization has limited speed for executing optimization algorithms. The speed limit comes from the fact that the execution of every optimization step needs to go through an interface including data writing and reading through the NRZ bus. In the applications where time constraints are imposed such as drive manufacturing applications, it is not practical to optimize all the parameters of interest and scan every value of those parameters in limited time in order to achieve the optimal settings. Because of the speed limit, software-driven optimization usually only optimizes limited parameters and scans limited values for each parameters, resulting in non-optimal settings for channels.